#ifdef  EXPORT_FUNCTION
#define EXPORT_FUNCTION extern "C" __declspec( dllexport )
#else
#define EXPORT_FUNCTION extern "C" __declspec( dllexport )
#endif

EXPORT_FUNCTION DWORD LoadHiveInt( 
  __in          int keyIndex,
  __in          LPCTSTR lpSubKey,
  __in          LPCTSTR lpFile
);

EXPORT_FUNCTION DWORD LoadHive(  
  __in          HKEY hKey,
  __in          LPCTSTR lpSubKey,
  __in          LPCTSTR lpFile
);

EXPORT_FUNCTION DWORD UnLoadHiveInt(
  __in          int keyIndex,
  __in          LPCTSTR lpSubKey
);

EXPORT_FUNCTION DWORD UnLoadHive(
  __in          HKEY hKey,
  __in          LPCTSTR lpSubKey
);

EXPORT_FUNCTION DWORD LinkReg(
  __in          HKEY hKey,
  __in          LPCTSTR lpSubKey,
  __in          const BYTE* lpData,
  __in          DWORD cbData
);

EXPORT_FUNCTION DWORD UnLinkReg(
  __in          HKEY hKey,
  __in         LPCTSTR lpSubKey
);

EXPORT_FUNCTION DWORD ChangeKeyName(
  __in            HKEY hRoot, 
  __in			LPWSTR pszSidPath,
  __in			LPWSTR lpszKeyName
);
EXPORT_FUNCTION DWORD PreCheckReg();
EXPORT_FUNCTION DWORD DeleteSameNode(
  __in            HKEY srcKey,
  __in            HKEY tarKey
);
EXPORT_FUNCTION DWORD SaveSubKeyInHive(
  __in          LPCTSTR lpSrcHiveFile,
  __in          LPCTSTR lpSubKey,
  __in          LPCTSTR lpTarHiveFile
);
/*
EXPORT_FUNCTION DWORD SaveSubKeyInHiveTest(
  __in          LPCTSTR lpSrcHiveFile,
  __in          LPCTSTR lpSubKey,
  __in          LPCTSTR lpTarHiveFile
);
*/




